﻿#pragma once
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#include <stdbool.h>
typedef int LTDataType;
typedef struct SListNode
{
	struct SListNode* prev;
	struct SListNode* next;
	LTDataType data;
}LTNode;
//初始化1
LTNode* LTInit();
//初始化2
void LTDestroy(LTNode** phead);
//尾插
void LTPushBack(LTNode* phead, LTDataType x);
//头插
void LTPushFront(LTNode* phead, LTDataType x);

bool LTEmpty(LTNode* phead);
//尾删
void LTPopBack(LTNode* phead);
//头删
void LTPopFront(LTNode* phead);

LTNode* LTFind(LTNode* phead, LTDataType x);
//在pos位置之后插⼊数据
void LTInsert(LTNode* pos, LTDataType x);
//课下练习——在指定位置之前插入数据
void LTInsertFront(LTNode* pos, LTDataType x);
//删除pos位置的结点
void LTErase(LTNode* pos);
//创建节点
LTNode* LTBuyNode(LTDataType x);
void LTPrint(LTNode* phead);
//打印双向链表
